{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Implementation of Softmax Regression from Scratch\n",
    "\n",
    ":label:`chapter_softmax_scratch`\n",
    "\n",
    "\n",
    "Just as we implemented linear regression from scratch,\n",
    "we believe that multiclass logistic (softmax) regression\n",
    "is similarly fundamental and you ought to know\n",
    "the gory details of how to implement it from scratch.\n",
    "As with linear regression, after doing things by hand\n",
    "we will breeze through an implementation in Gluon for comparison.\n",
    "To begin, let's import our packages."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.insert(0, '..')\n",
    "\n",
    "%matplotlib inline\n",
    "import d2l\n",
    "import torch\n",
    "from torch.distributions import normal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will work with the Fashion-MNIST dataset just introduced,\n",
    "cuing up an iterator with batch size 256."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 256\n",
    "train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initialize Model Parameters\n",
    "\n",
    "Just as in linear regression, we represent each example as a vector.\n",
    "Since each example is a $28 \\times 28$ image,\n",
    "we can flatten each example, treating them as $784$ dimensional vectors.\n",
    "In the future, we'll talk about more sophisticated strategies\n",
    "for exploiting the spatial structure in images,\n",
    "but for now we treat each pixel location as just another feature.\n",
    "\n",
    "Recall that in softmax regression,\n",
    "we have as many outputs as there are categories.\n",
    "Because our dataset has $10$ categories,\n",
    "our network will have an output dimension of $10$.\n",
    "Consequently, our weights will constitute a $784 \\times 10$ matrix\n",
    "and the biases will constitute a $1 \\times 10$ vector.\n",
    "As with linear regression, we will initialize our weights $W$\n",
    "with Gaussian noise and our biases to take the initial value $0$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "9"
    }
   },
   "outputs": [],
   "source": [
    "num_inputs = 784\n",
    "num_outputs = 10\n",
    "\n",
    "W = normal.Normal(loc = 0, scale = 0.01).sample((num_inputs, num_outputs))\n",
    "b = torch.zeros(num_outputs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Recall that we need to *attach gradients* to the model parameters.\n",
    "More literally, we are allocating memory for future gradients to be stored\n",
    "and notifiying PyTorch that we want gradients to be calculated with respect to these parameters in the first place."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "10"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], requires_grad=True)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "W.requires_grad_(True)\n",
    "b.requires_grad_(True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Softmax\n",
    "\n",
    "Before implementing the softmax regression model,\n",
    "let's briefly review how `torch.sum` work\n",
    "along specific dimensions in a PyTorch tensor.\n",
    "Given a matrix `X` we can sum over all elements (default) or only\n",
    "over elements in the same column (`dim=0`) or the same row (`dim=1`).\n",
    "Note that if `X` is an array with shape `(2, 3)`\n",
    "and we sum over the columns (`torch.sum(X, dim=0`),\n",
    "the result will be a (1D) vector with shape `(3,)`.\n",
    "If we want to keep the number of axes in the original array\n",
    "(resulting in a 2D array with shape `(1,3)`),\n",
    "rather than collapsing out the dimension that we summed over\n",
    "we can specify `keepdim=True` when invoking `torch.sum`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "11"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([[5, 7, 9]]), tensor([[ 6],\n",
       "         [15]]))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = torch.tensor([[1, 2, 3], [4, 5, 6]])\n",
    "torch.sum(X, dim=0, keepdim=True), torch.sum(X, dim=1, keepdim=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We are now ready to implement the softmax function.\n",
    "Recall that softmax consists of two steps:\n",
    "First, we exponentiate each term (using `torch.exp`).\n",
    "Then, we sum over each row (we have one row per example in the batch)\n",
    "to get the normalization constants for each example.\n",
    "Finally, we divide each row by its normalization constant,\n",
    "ensuring that the result sums to $1$.\n",
    "Before looking at the code, let's recall\n",
    "what this looks expressed as an equation:\n",
    "\n",
    "$$\n",
    "\\mathrm{softmax}(\\mathbf{X})_{ij} = \\frac{\\exp(X_{ij})}{\\sum_k \\exp(X_{ik})}\n",
    "$$\n",
    "\n",
    "The denominator, or normalization constant,\n",
    "is also sometimes called the partition function\n",
    "(and its logarithm the log-partition function).\n",
    "The origins of that name are in [statistical physics](https://en.wikipedia.org/wiki/Partition_function_(statistical_mechanics))\n",
    "where a related equation models the distribution\n",
    "over an ensemble of particles)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "12"
    }
   },
   "outputs": [],
   "source": [
    "def softmax(X):\n",
    "    X_exp = torch.exp(X)\n",
    "    partition = torch.sum(X_exp, dim=1, keepdim=True)\n",
    "    return X_exp / partition  # The broadcast mechanism is applied here"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, for any random input, we turn each element into a non-negative number. Moreover, each row sums up to 1, as is required for a probability.\n",
    "Note that while this looks correct mathematically,\n",
    "we were a bit sloppy in our implementation\n",
    "because failed to take precautions against numerical overflow or underflow\n",
    "due to large (or very small) elements of the matrix,\n",
    "as we did in\n",
    ":numref:`chapter_naive_bayes`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "13"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([[0.0120, 0.0471, 0.3944, 0.3469, 0.1997],\n",
       "         [0.1948, 0.3007, 0.1048, 0.2569, 0.1427]]), tensor([1., 1.]))"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# X = nd.random.normal(shape=(2, 5))\n",
    "X = normal.Normal(loc = 0, scale = 1).sample((2, 5))\n",
    "X_prob = softmax(X)\n",
    "X_prob, torch.sum(X_prob, dim=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Model\n",
    "\n",
    "Now that we have defined the softmax operation,\n",
    "we can implement the softmax regression model.\n",
    "The below code defines the forward pass through the network.\n",
    "Note that we flatten each original image in the batch\n",
    "into a vector with length `num_inputs` with the `view` function\n",
    "before passing the data through our model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "14"
    }
   },
   "outputs": [],
   "source": [
    "def net(X):\n",
    "    return softmax(torch.matmul(X.reshape((-1, num_inputs)), W) + b)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Loss Function\n",
    "\n",
    "Next, we need to implement the cross entropy loss function,\n",
    "introduced in :numref:`chapter_softmax`.\n",
    "This may be the most common loss function\n",
    "in all of deep learning because, at the moment,\n",
    "classification problems far outnumber regression problems.\n",
    "\n",
    "\n",
    "Recall that cross entropy takes the negative log likelihood\n",
    "of the predicted probability assigned to the true label $-\\log p(y|x)$.\n",
    "Rather than iterating over the predictions with a Python `for` loop\n",
    "(which tends to be inefficient), we can use the `gather` function\n",
    "which allows us to select the appropriate terms\n",
    "from the matrix of softmax entries easily.\n",
    "Below, we illustrate the `gather` function on a toy example,\n",
    "with 3 categories and 2 examples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[0.1000],\n",
       "        [0.5000]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])\n",
    "y = torch.tensor([0, 2])\n",
    "torch.gather(y_hat, 1, y.unsqueeze(dim=1)) # y has to be unsqueezed so that shape(y_hat) = shape(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can implement the cross-entropy loss function efficiently\n",
    "with just one line of code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "16"
    }
   },
   "outputs": [],
   "source": [
    "def cross_entropy(y_hat, y):\n",
    "    return -torch.gather(y_hat, 1, y.unsqueeze(dim=1)).log()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Classification Accuracy\n",
    "\n",
    "Given the predicted probability distribution `y_hat`,\n",
    "we typically choose the class with highest predicted probability\n",
    "whenever we must output a *hard* prediction. Indeed, many applications require that we make a choice. Gmail must catetegorize an email into Primary, Social, Updates, or Forums. It might estimate probabilities internally, but at the end of the day it has to choose one among the categories.\n",
    "\n",
    "When predictions are consistent with the actual category `y`, they are correct. The classification accuracy is the fraction of all predictions that are correct. Although we cannot optimize accuracy directly (it is not differentiable), it's often the performance metric that we care most about, and we will nearly always report it when training classifiers.\n",
    "\n",
    "To compute accuracy we do the following:\n",
    "First, we execute `y_hat.argmax(dim=1)`\n",
    "to gather the predicted classes\n",
    "(given by the indices for the largest entires each row).\n",
    "The result has the same shape as the variable `y`.\n",
    "Now we just need to check how frequently the two match. The result is PyTorch tensor containing entries of 0 (false) and 1 (true). Since the attribute `mean` can only calculate the mean of floating types,\n",
    "we also need to convert the result to `float`. Taking the mean yields the desired result."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "17"
    }
   },
   "outputs": [],
   "source": [
    "def accuracy(y_hat, y):\n",
    "    return (y_hat.argmax(dim=1) == y).float().mean().item()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will continue to use the variables `y_hat` and `y`\n",
    "defined in the `gather` function,\n",
    "as the predicted probability distribution and label, respectively.\n",
    "We can see that the first example's prediction category is 2\n",
    "(the largest element of the row is 0.6 with an index of 2),\n",
    "which is inconsistent with the actual label, 0.\n",
    "The second example's prediction category is 2\n",
    "(the largest element of the row is 0.5 with an index of 2),\n",
    "which is consistent with the actual label, 2.\n",
    "Therefore, the classification accuracy rate for these two examples is 0.5."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "18"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy(y_hat, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Similarly, we can evaluate the accuracy for model `net` on the data set\n",
    "(accessed via `data_iter`)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "19"
    }
   },
   "outputs": [],
   "source": [
    "# The function will be gradually improved: the complete implementation will be\n",
    "# discussed in the \"Image Augmentation\" section\n",
    "def evaluate_accuracy(data_iter, net):\n",
    "    acc_sum, n = 0.0, 0\n",
    "    for X, y in data_iter:\n",
    "        acc_sum += (net(X).argmax(dim=1) == y).sum().item()\n",
    "        n += y.size()[0]  # y.size()[0] = batch_size\n",
    "    return acc_sum / n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Because we initialized the `net` model with random weights,\n",
    "the accuracy of this model should be close to random guessing,\n",
    "i.e. 0.1 for 10 classes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "20"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.1224"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluate_accuracy(test_iter, net)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model Training\n",
    "\n",
    "The training loop for softmax regression should look strikingly familiar\n",
    "if you read through our implementation\n",
    "of linear regression earlier in this chapter.\n",
    "Again, we use the mini-batch stochastic gradient descent\n",
    "to optimize the loss function of the model.\n",
    "Note that the number of epochs (`num_epochs`),\n",
    "and learning rate (`lr`) are both adjustable hyper-parameters.\n",
    "By changing their values, we may be able to increase the classification accuracy of the model. In practice we'll want to split our data three ways\n",
    "into training, validation, and test data, using the validation data to choose the best values of our hyperparameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "attributes": {
     "classes": [],
     "id": "",
     "n": "21"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch 1, loss 0.7872, train acc 0.750, test acc 0.793\n",
      "epoch 2, loss 0.5709, train acc 0.813, test acc 0.806\n",
      "epoch 3, loss 0.5255, train acc 0.825, test acc 0.813\n",
      "epoch 4, loss 0.5023, train acc 0.831, test acc 0.825\n",
      "epoch 5, loss 0.4854, train acc 0.836, test acc 0.827\n"
     ]
    }
   ],
   "source": [
    "num_epochs, lr = 5, 0.1\n",
    "\n",
    "# This function has been saved in the d2l package for future use\n",
    "def train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, params=None, lr=None, trainer=None):\n",
    "    for epoch in range(num_epochs):\n",
    "        train_l_sum, train_acc_sum, n = 0.0, 0.0, 0\n",
    "        for X, y in train_iter:\n",
    "            y_hat = net(X)\n",
    "            l = loss(y_hat, y).sum()\n",
    "            l.backward()\n",
    "            if trainer is None:\n",
    "                d2l.sgd(params, lr, batch_size)\n",
    "            else:\n",
    "                # This will be illustrated in the next section\n",
    "                trainer.step(batch_size)\n",
    "            train_l_sum += l.item()\n",
    "            train_acc_sum += (y_hat.argmax(dim=1) == y).sum().item()\n",
    "            n += y.size()[0]\n",
    "        test_acc = evaluate_accuracy(test_iter, net)\n",
    "        print('epoch %d, loss %.4f, train acc %.3f, test acc %.3f'\n",
    "              % (epoch + 1, train_l_sum / n, train_acc_sum / n, test_acc))\n",
    "\n",
    "train_ch3(net, train_iter, test_iter, cross_entropy, num_epochs, batch_size, [W, b], lr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prediction\n",
    "\n",
    "Now that training is complete, our model is ready to classify some images.\n",
    "Given a series of images, we will compare their actual labels\n",
    "(first line of text output) and the model predictions\n",
    "(second line of text output)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
       "<svg height=\"103.201263pt\" version=\"1.1\" viewBox=\"0 0 691 103.201263\" width=\"691pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 103.201263 \n",
       "L 691 103.201263 \n",
       "L 691 -0 \n",
       "L 0 -0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 10.7 92.501263 \n",
       "L 67.445763 92.501263 \n",
       "L 67.445763 35.7555 \n",
       "L 10.7 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p753b72d2fc)\">\n",
       "    <image height=\"57\" id=\"image445c6e06bd\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"10.7\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 10.7 92.501263 \n",
       "L 10.7 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 67.445763 92.501263 \n",
       "L 67.445763 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 10.7 92.501263 \n",
       "L 67.445763 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 10.7 35.7555 \n",
       "L 67.445763 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- coat -->\n",
       "    <defs>\n",
       "     <path d=\"M 48.78125 52.59375 \n",
       "L 48.78125 44.1875 \n",
       "Q 44.96875 46.296875 41.140625 47.34375 \n",
       "Q 37.3125 48.390625 33.40625 48.390625 \n",
       "Q 24.65625 48.390625 19.8125 42.84375 \n",
       "Q 14.984375 37.3125 14.984375 27.296875 \n",
       "Q 14.984375 17.28125 19.8125 11.734375 \n",
       "Q 24.65625 6.203125 33.40625 6.203125 \n",
       "Q 37.3125 6.203125 41.140625 7.25 \n",
       "Q 44.96875 8.296875 48.78125 10.40625 \n",
       "L 48.78125 2.09375 \n",
       "Q 45.015625 0.34375 40.984375 -0.53125 \n",
       "Q 36.96875 -1.421875 32.421875 -1.421875 \n",
       "Q 20.0625 -1.421875 12.78125 6.34375 \n",
       "Q 5.515625 14.109375 5.515625 27.296875 \n",
       "Q 5.515625 40.671875 12.859375 48.328125 \n",
       "Q 20.21875 56 33.015625 56 \n",
       "Q 37.15625 56 41.109375 55.140625 \n",
       "Q 45.0625 54.296875 48.78125 52.59375 \n",
       "z\n",
       "\" id=\"DejaVuSans-63\"/>\n",
       "     <path d=\"M 30.609375 48.390625 \n",
       "Q 23.390625 48.390625 19.1875 42.75 \n",
       "Q 14.984375 37.109375 14.984375 27.296875 \n",
       "Q 14.984375 17.484375 19.15625 11.84375 \n",
       "Q 23.34375 6.203125 30.609375 6.203125 \n",
       "Q 37.796875 6.203125 41.984375 11.859375 \n",
       "Q 46.1875 17.53125 46.1875 27.296875 \n",
       "Q 46.1875 37.015625 41.984375 42.703125 \n",
       "Q 37.796875 48.390625 30.609375 48.390625 \n",
       "z\n",
       "M 30.609375 56 \n",
       "Q 42.328125 56 49.015625 48.375 \n",
       "Q 55.71875 40.765625 55.71875 27.296875 \n",
       "Q 55.71875 13.875 49.015625 6.21875 \n",
       "Q 42.328125 -1.421875 30.609375 -1.421875 \n",
       "Q 18.84375 -1.421875 12.171875 6.21875 \n",
       "Q 5.515625 13.875 5.515625 27.296875 \n",
       "Q 5.515625 40.765625 12.171875 48.375 \n",
       "Q 18.84375 56 30.609375 56 \n",
       "z\n",
       "\" id=\"DejaVuSans-6f\"/>\n",
       "     <path d=\"M 34.28125 27.484375 \n",
       "Q 23.390625 27.484375 19.1875 25 \n",
       "Q 14.984375 22.515625 14.984375 16.5 \n",
       "Q 14.984375 11.71875 18.140625 8.90625 \n",
       "Q 21.296875 6.109375 26.703125 6.109375 \n",
       "Q 34.1875 6.109375 38.703125 11.40625 \n",
       "Q 43.21875 16.703125 43.21875 25.484375 \n",
       "L 43.21875 27.484375 \n",
       "z\n",
       "M 52.203125 31.203125 \n",
       "L 52.203125 0 \n",
       "L 43.21875 0 \n",
       "L 43.21875 8.296875 \n",
       "Q 40.140625 3.328125 35.546875 0.953125 \n",
       "Q 30.953125 -1.421875 24.3125 -1.421875 \n",
       "Q 15.921875 -1.421875 10.953125 3.296875 \n",
       "Q 6 8.015625 6 15.921875 \n",
       "Q 6 25.140625 12.171875 29.828125 \n",
       "Q 18.359375 34.515625 30.609375 34.515625 \n",
       "L 43.21875 34.515625 \n",
       "L 43.21875 35.40625 \n",
       "Q 43.21875 41.609375 39.140625 45 \n",
       "Q 35.0625 48.390625 27.6875 48.390625 \n",
       "Q 23 48.390625 18.546875 47.265625 \n",
       "Q 14.109375 46.140625 10.015625 43.890625 \n",
       "L 10.015625 52.203125 \n",
       "Q 14.9375 54.109375 19.578125 55.046875 \n",
       "Q 24.21875 56 28.609375 56 \n",
       "Q 40.484375 56 46.34375 49.84375 \n",
       "Q 52.203125 43.703125 52.203125 31.203125 \n",
       "z\n",
       "\" id=\"DejaVuSans-61\"/>\n",
       "     <path d=\"M 18.3125 70.21875 \n",
       "L 18.3125 54.6875 \n",
       "L 36.8125 54.6875 \n",
       "L 36.8125 47.703125 \n",
       "L 18.3125 47.703125 \n",
       "L 18.3125 18.015625 \n",
       "Q 18.3125 11.328125 20.140625 9.421875 \n",
       "Q 21.96875 7.515625 27.59375 7.515625 \n",
       "L 36.8125 7.515625 \n",
       "L 36.8125 0 \n",
       "L 27.59375 0 \n",
       "Q 17.1875 0 13.234375 3.875 \n",
       "Q 9.28125 7.765625 9.28125 18.015625 \n",
       "L 9.28125 47.703125 \n",
       "L 2.6875 47.703125 \n",
       "L 2.6875 54.6875 \n",
       "L 9.28125 54.6875 \n",
       "L 9.28125 70.21875 \n",
       "z\n",
       "\" id=\"DejaVuSans-74\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(26.073506 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-63\"/>\n",
       "     <use x=\"54.980469\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"116.162109\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"177.441406\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "    <!-- coat -->\n",
       "    <g transform=\"translate(26.073506 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-63\"/>\n",
       "     <use x=\"54.980469\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"116.162109\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"177.441406\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 78.794915 92.501263 \n",
       "L 135.540678 92.501263 \n",
       "L 135.540678 35.7555 \n",
       "L 78.794915 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pe21d708e05)\">\n",
       "    <image height=\"57\" id=\"image6343e1d057\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"78.794915\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAABHNCSVQICAgIfAhkiAAABRtJREFUaIHtmVtslEUUx3/f7nZbdqvb67bZUijlHrmICLVGXhQx4UGJt/igCWgM+mQ08RofNJHEKAk+8aCCUWN8gQcwBoMgpigXISSKIaAIlXDpUrrbdul27+vDf/Zrti5oYiL67fd/mZ1vzpyZM/85Z87MWiuth4s4HJ4bPYF/A66RToFrpFPgGukUuEY6Ba6RToFrpFPg8zaEABhbMVdl2AtAutECIF8rwXygaOoqC3Xm8lJQ0Tb7CgAeS9/jVwMAZDI+AOrqstI/UmcP3nBUygODUhK8kDJj+wEIvXgOgIGrNwEQGwkCYJn+gUAagPFUDQDZpPp5/HkAZnwoyepgMtk7B4ChdWMAhALjAHjyYjRf0GpkTX1Wkxjze7VaS0O/A7B3bS8Al+66WXruiwJQ35gB4Pz+TgAaoxPX19Xr9wPQW/8rACdSHQBczkhH2D8KwOZTdwPQ3S2drVOuArCpcycAn4wsAeDjUz0A3BY5Lz3ZLtnyt5fjfwxf7a4jAHTsqizgbW0F4NRrMwGIdJwB4ODAdACeaDsAwL7+S2pP5QC44G0DYFjuxLQ3JDe+Zrmtuz/ZDEwweTwhJqO9o2bsbgCCT8rnuhcPAXBo+2IA1r4TAyDx2B0aY9tRAE48vQyA1rx2Z3UwiSWfs3w1ZQ3FbMb8UOSbsUP1bzpnA1A4IYreC9wLQPMOrVriUbEwZbARgI6v45I34/Rtft8e4+XorQBki4rAZzbOByDIYQDyg4MApJtnlc0tMFD+LNXybD8AmW2qh48kAIgt0ByrhMmiVqWYy5Y1WD6tbv6K/MD7rcr0A9r/hVZF17NR+VVhSxiAmuiPANSOTtX3Ou0QX0cEgMf7Q/YYHku7ZHduAQDB7YcrTrJl4WUAmvzaLakHhwH4bZHmUr9dXLXlBjTXYcn5UvUa5zoL4Bj47F/F8n1ezClKlhgt1Zt+km+NRQzTTcpSEi+YSNZ+OwDRFWJpzjPHASgsmgfA9z9H7DHaOxUdR/sUiadyoOIk01mNte+i4kGgVvEhvOQCADUbdG7mjXysR/qajmn3VQmTlnVdgRKDJTR9dFClqVs1yhfPvSQG8/drVYmbHHX5QsklxHhNbGLzjIXVN91SqDy4mVv8iqJksEHZWDKhnDfbp7I5frCsW2KauAt9pvO3KpisCiN9kwPOZNiBJ58vbygdPSZp6NxQOWgMPH8nAMllSvB9JyfcY/xkAwBT+3J/7gic/lTJQqRFASp2qF065sklhnqkM3xAASkdUWLvT5TrqQomrZWeRyadHaZaSve8Wq3JAchWYAKPVWdu19nypKKQUsA587auYlbXmN2WS2uXtO5V35bvlOQ/t/tLAC7mlBq+dWy1dMUk9+6qzwF49dgaAPKXdEHvvEXJQO2q/rI5VAWT1/ZJO92rzKAtZnzSTuivge5XFObHHuqxv43M1C7xZnSEZD6Q36/fsw6A6d1K54LmmaNoyq/iOpZyQ1MAaJmjQ39kpxKNMP3AxC6rCiat/9Lf6UNPyW+H79GhH/xBvlZ6TEsvTgLQGJJfJ9P+sv7T1ov50hWtFFeqgknfX4v8Q5TSRuPjHpOoA+Q2mYv2Vj17eI1bv7n0CwC2blH0jM0XlV0RPWSd3T0DgPF2+bA3Ka4sf7ziFKqCyRvrk4Zl78wuAPKnz6puHrx/eV3PIXM36ntheESlOXttNZOug5PhMukUVAWTrpFOgWukU+Aa6RS4RjoFrpFOgWukU+Aa6RT8AT8Kl3hT52zRAAAAAElFTkSuQmCC\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_8\">\n",
       "    <path d=\"M 78.794915 92.501263 \n",
       "L 78.794915 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_9\">\n",
       "    <path d=\"M 135.540678 92.501263 \n",
       "L 135.540678 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_10\">\n",
       "    <path d=\"M 78.794915 92.501263 \n",
       "L 135.540678 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_11\">\n",
       "    <path d=\"M 78.794915 35.7555 \n",
       "L 135.540678 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- sandal -->\n",
       "    <defs>\n",
       "     <path d=\"M 44.28125 53.078125 \n",
       "L 44.28125 44.578125 \n",
       "Q 40.484375 46.53125 36.375 47.5 \n",
       "Q 32.28125 48.484375 27.875 48.484375 \n",
       "Q 21.1875 48.484375 17.84375 46.4375 \n",
       "Q 14.5 44.390625 14.5 40.28125 \n",
       "Q 14.5 37.15625 16.890625 35.375 \n",
       "Q 19.28125 33.59375 26.515625 31.984375 \n",
       "L 29.59375 31.296875 \n",
       "Q 39.15625 29.25 43.1875 25.515625 \n",
       "Q 47.21875 21.78125 47.21875 15.09375 \n",
       "Q 47.21875 7.46875 41.1875 3.015625 \n",
       "Q 35.15625 -1.421875 24.609375 -1.421875 \n",
       "Q 20.21875 -1.421875 15.453125 -0.5625 \n",
       "Q 10.6875 0.296875 5.421875 2 \n",
       "L 5.421875 11.28125 \n",
       "Q 10.40625 8.6875 15.234375 7.390625 \n",
       "Q 20.0625 6.109375 24.8125 6.109375 \n",
       "Q 31.15625 6.109375 34.5625 8.28125 \n",
       "Q 37.984375 10.453125 37.984375 14.40625 \n",
       "Q 37.984375 18.0625 35.515625 20.015625 \n",
       "Q 33.0625 21.96875 24.703125 23.78125 \n",
       "L 21.578125 24.515625 \n",
       "Q 13.234375 26.265625 9.515625 29.90625 \n",
       "Q 5.8125 33.546875 5.8125 39.890625 \n",
       "Q 5.8125 47.609375 11.28125 51.796875 \n",
       "Q 16.75 56 26.8125 56 \n",
       "Q 31.78125 56 36.171875 55.265625 \n",
       "Q 40.578125 54.546875 44.28125 53.078125 \n",
       "z\n",
       "\" id=\"DejaVuSans-73\"/>\n",
       "     <path d=\"M 54.890625 33.015625 \n",
       "L 54.890625 0 \n",
       "L 45.90625 0 \n",
       "L 45.90625 32.71875 \n",
       "Q 45.90625 40.484375 42.875 44.328125 \n",
       "Q 39.84375 48.1875 33.796875 48.1875 \n",
       "Q 26.515625 48.1875 22.3125 43.546875 \n",
       "Q 18.109375 38.921875 18.109375 30.90625 \n",
       "L 18.109375 0 \n",
       "L 9.078125 0 \n",
       "L 9.078125 54.6875 \n",
       "L 18.109375 54.6875 \n",
       "L 18.109375 46.1875 \n",
       "Q 21.34375 51.125 25.703125 53.5625 \n",
       "Q 30.078125 56 35.796875 56 \n",
       "Q 45.21875 56 50.046875 50.171875 \n",
       "Q 54.890625 44.34375 54.890625 33.015625 \n",
       "z\n",
       "\" id=\"DejaVuSans-6e\"/>\n",
       "     <path d=\"M 45.40625 46.390625 \n",
       "L 45.40625 75.984375 \n",
       "L 54.390625 75.984375 \n",
       "L 54.390625 0 \n",
       "L 45.40625 0 \n",
       "L 45.40625 8.203125 \n",
       "Q 42.578125 3.328125 38.25 0.953125 \n",
       "Q 33.9375 -1.421875 27.875 -1.421875 \n",
       "Q 17.96875 -1.421875 11.734375 6.484375 \n",
       "Q 5.515625 14.40625 5.515625 27.296875 \n",
       "Q 5.515625 40.1875 11.734375 48.09375 \n",
       "Q 17.96875 56 27.875 56 \n",
       "Q 33.9375 56 38.25 53.625 \n",
       "Q 42.578125 51.265625 45.40625 46.390625 \n",
       "z\n",
       "M 14.796875 27.296875 \n",
       "Q 14.796875 17.390625 18.875 11.75 \n",
       "Q 22.953125 6.109375 30.078125 6.109375 \n",
       "Q 37.203125 6.109375 41.296875 11.75 \n",
       "Q 45.40625 17.390625 45.40625 27.296875 \n",
       "Q 45.40625 37.203125 41.296875 42.84375 \n",
       "Q 37.203125 48.484375 30.078125 48.484375 \n",
       "Q 22.953125 48.484375 18.875 42.84375 \n",
       "Q 14.796875 37.203125 14.796875 27.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-64\"/>\n",
       "     <path d=\"M 9.421875 75.984375 \n",
       "L 18.40625 75.984375 \n",
       "L 18.40625 0 \n",
       "L 9.421875 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-6c\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(87.409984 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-6e\"/>\n",
       "     <use x=\"176.757812\" xlink:href=\"#DejaVuSans-64\"/>\n",
       "     <use x=\"240.234375\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"301.513672\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "    </g>\n",
       "    <!-- sandal -->\n",
       "    <g transform=\"translate(87.409984 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-6e\"/>\n",
       "     <use x=\"176.757812\" xlink:href=\"#DejaVuSans-64\"/>\n",
       "     <use x=\"240.234375\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"301.513672\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_3\">\n",
       "   <g id=\"patch_12\">\n",
       "    <path d=\"M 146.889831 92.501263 \n",
       "L 203.635593 92.501263 \n",
       "L 203.635593 35.7555 \n",
       "L 146.889831 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p5fd99624e6)\">\n",
       "    <image height=\"57\" id=\"image7f3f628a4a\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"146.889831\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAABHNCSVQICAgIfAhkiAAABFJJREFUaIHtms9vG1UQxz/rXXu9iU3spA1pQkpFiUSacqgARXAFcQSBEP8B/wK3CnHhD+ACPfSA1BMSEhVFgDj0gCooPyRKRUsaQlMIbUjaBMeO7dj7g8P3rcOaNEJUArHeuYx33rx5b+Y7b+bZa+sZ66WIlFPuv97Av0GZk2mhzMm0UOZkWihzMi2UOZkWypxMC2VOpoUcZ+J+AK6ePAJAflN+d8YCaeRD8a7klid5udIEIIwsqdmSB6H0/EA8l9PX1VJxB4DI6AO0OnkAvEI38dxoFLWWmZuzxANjM6oVJG/LVsHsuXpNey29+0XCyYFA0jp+9mQE8Pnj7wDw2to8ABudYQDK+TYAhwo1AH5qHQBg4XdlwPhQHQDHChOG/UjxawdCZ8d3EnKAZjefmLPTlU5jW0jajkHGUxYcHG4AUCm0EntrmTU8WxlxovQzAG+deh4YFCSf/OTVCGBu9BYAF947AUBzVtFzXB/YPXtBU9HuD0/v/BR0NvN58TDUPL9ry56R/1kWxjaD3fMKYDfNGTRrhcOaWxjR3qpl1YXatgeA53YAePHIJQBmizf32mo6yfl1WWfs9ZmzAHw6ewwAr6x831kuA+DeNlFV8GkfUlQjU32jGIy2PvQQN0jGKFnrxd7ibsdU5npyU77KAd5alFgzKOTNWuL1YknysvQ2x3UmzznHAbg+Kt8GA8kHP1AUnn5OyDir6kH+inhYFVLNo8p3uyaEnJriE7rmrA4nq6u9rXG7pfHQFNLOyO7PvDmZJMoZnYLGugaZ0DG9tpvcdOiK+55B2hEvrGoRa0rPl99+VPP3i0BayOmUlfCnaxMA+JOqXDNTawDMVlYBuLY1DkApr/GbjRHxBclHvhfCcbu0QkWzPSaUHBVC3OXdxXeqGourp21uMDGPEQ1KMhrfcOLsKN4Wv++G9IZuqY44b6hThM0lzfsbgfjf00A46bibavaXmw8AkDNXqdW6Wsf1i9MA2Kbcx8Wi+ZA+PPHYIgDleaXx+a/mAHAnlJ/RVZV5d9OkYGm34Tu6ndE6aArOqGn2VaVdblG95MAFzRn9bAUA/5eVfZ0K+54HA0nv4mJCEDRUhofOqWlPfbOugd/Eg9oWAJatglV/5GEAvn6lAoA7ua3xS8qE2Wdlf+HjGSDZQipzd2TjRhWA0pKK1/SHQjK48l1ib37f5i3HXDjs+LZgLih+UnMgkLTil7BbHx0FIH9qDADv/S//kUH7/CQAC98eBiBnznLcBuIv5QDFdY1NnflBOnc2kpszSEVBwL4U7f8eeSCQdOIPlZfV/MP6UkIhV9bZilqtPQ305//GaSEYzZurmZEPT+oWPv1mp6cbLPwo3mezd9Z6i9zbG//BQjKs1/dUuJv8bjRyRj8i1Q8/BUD7mDJg8oUrwF9RA8AyvdMg1p8d90oDgaSV/cUlJZQ5mRbKnEwLZU6mhTIn00KZk2mhzMm0UOZkWihzMi30BzA4bTdnAJ0AAAAAAElFTkSuQmCC\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_13\">\n",
       "    <path d=\"M 146.889831 92.501263 \n",
       "L 146.889831 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_14\">\n",
       "    <path d=\"M 203.635593 92.501263 \n",
       "L 203.635593 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_15\">\n",
       "    <path d=\"M 146.889831 92.501263 \n",
       "L 203.635593 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_16\">\n",
       "    <path d=\"M 146.889831 35.7555 \n",
       "L 203.635593 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- sneaker -->\n",
       "    <defs>\n",
       "     <path d=\"M 56.203125 29.59375 \n",
       "L 56.203125 25.203125 \n",
       "L 14.890625 25.203125 \n",
       "Q 15.484375 15.921875 20.484375 11.0625 \n",
       "Q 25.484375 6.203125 34.421875 6.203125 \n",
       "Q 39.59375 6.203125 44.453125 7.46875 \n",
       "Q 49.3125 8.734375 54.109375 11.28125 \n",
       "L 54.109375 2.78125 \n",
       "Q 49.265625 0.734375 44.1875 -0.34375 \n",
       "Q 39.109375 -1.421875 33.890625 -1.421875 \n",
       "Q 20.796875 -1.421875 13.15625 6.1875 \n",
       "Q 5.515625 13.8125 5.515625 26.8125 \n",
       "Q 5.515625 40.234375 12.765625 48.109375 \n",
       "Q 20.015625 56 32.328125 56 \n",
       "Q 43.359375 56 49.78125 48.890625 \n",
       "Q 56.203125 41.796875 56.203125 29.59375 \n",
       "z\n",
       "M 47.21875 32.234375 \n",
       "Q 47.125 39.59375 43.09375 43.984375 \n",
       "Q 39.0625 48.390625 32.421875 48.390625 \n",
       "Q 24.90625 48.390625 20.390625 44.140625 \n",
       "Q 15.875 39.890625 15.1875 32.171875 \n",
       "z\n",
       "\" id=\"DejaVuSans-65\"/>\n",
       "     <path d=\"M 9.078125 75.984375 \n",
       "L 18.109375 75.984375 \n",
       "L 18.109375 31.109375 \n",
       "L 44.921875 54.6875 \n",
       "L 56.390625 54.6875 \n",
       "L 27.390625 29.109375 \n",
       "L 57.625 0 \n",
       "L 45.90625 0 \n",
       "L 18.109375 26.703125 \n",
       "L 18.109375 0 \n",
       "L 9.078125 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-6b\"/>\n",
       "     <path d=\"M 41.109375 46.296875 \n",
       "Q 39.59375 47.171875 37.8125 47.578125 \n",
       "Q 36.03125 48 33.890625 48 \n",
       "Q 26.265625 48 22.1875 43.046875 \n",
       "Q 18.109375 38.09375 18.109375 28.8125 \n",
       "L 18.109375 0 \n",
       "L 9.078125 0 \n",
       "L 9.078125 54.6875 \n",
       "L 18.109375 54.6875 \n",
       "L 18.109375 46.1875 \n",
       "Q 20.953125 51.171875 25.484375 53.578125 \n",
       "Q 30.03125 56 36.53125 56 \n",
       "Q 37.453125 56 38.578125 55.875 \n",
       "Q 39.703125 55.765625 41.0625 55.515625 \n",
       "z\n",
       "\" id=\"DejaVuSans-72\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(151.335837 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-6e\"/>\n",
       "     <use x=\"115.478516\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"177.001953\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"238.28125\" xlink:href=\"#DejaVuSans-6b\"/>\n",
       "     <use x=\"296.144531\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"357.667969\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "    </g>\n",
       "    <!-- sandal -->\n",
       "    <g transform=\"translate(155.504899 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"113.378906\" xlink:href=\"#DejaVuSans-6e\"/>\n",
       "     <use x=\"176.757812\" xlink:href=\"#DejaVuSans-64\"/>\n",
       "     <use x=\"240.234375\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"301.513672\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_4\">\n",
       "   <g id=\"patch_17\">\n",
       "    <path d=\"M 214.984746 92.501263 \n",
       "L 271.730508 92.501263 \n",
       "L 271.730508 35.7555 \n",
       "L 214.984746 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p0ca819c3ce)\">\n",
       "    <image height=\"57\" id=\"image551a1bdbad\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"214.984746\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAABHNCSVQICAgIfAhkiAAABKVJREFUaIHtmstvVFUcxz/3Ma/OTMtU+rA+aHgYiDFxiTYYFqzdoNHEjRtYmLghhvhfGGLiygUaF8aNJsrChSRookKEaoAitGKLIn23dDqd1324+N0zd24HTe7MIWnS+900t3PmzK/z6e95jnHCeM1Ho5ZPvwTA+mHZ1st5ABRnbACGr9Vaa50+CwB7ywVg5UhW1nz0o06TMLXutkNl69po+txRAG6cPAfA97UiAPtTqwCMWULtt0a69Z680QRg3csBMNvcC8Ch9+YBOPv+OwAUvvi5J9sSknH0+asfAvBl5UkAblXHAGjk/wDg08oBADacbOs9y/UCAHm7AYBpiP9mB4RwrWQAUOjRtoRkHJ2dfh2Ad8cvRn4/aj8EYCS1AYAV0AKoe/Lxe1JVAKpuCoAlpx+AwakwEveihGQclesSNZ9JrQBwxd8PQM0XOi7iXzUv1XqPZUguTRmSJ5cd8b43+qcAuFA9BkCviTwhGUflikTNYpD7tsvzzeCnEX54QHDA3gLgAQMAVDxhZy2LHzs92paQjKPmRgaAPaZET0VMEVR+107S3OaTtulG9nQfLGixLSEZR5l52WrAlCircmDDl5rVbMuPSoqgFcRPx5O1q57s4dfrWmxLSMZRalN8LWPIllVXaDQROvUgP9bb8mTejpJSPln2suhUQjKO8vfF5ywj+r2V3Vzk2SOMrirSbgU+qCog1VfqUkIyjkrX1yPPqcC/Kp7kTxVdzUdUom6QS3Om9JUX1w4Hr2xosS0hGUf+1EzkeShdBsJI2ap4HuGTzSCX9tvSP347dwSAp7ipxbaEZBz5jvQKi24FgIwhz1uu+KTqNJpBVQOQt8Q/N4M1w2nxwcpiXpdZQEKyO329KVM5Re5+vRR5bq9hM6bQViSV3w7c1GvWriC5K/5I7f+uF5ZeAODkyDUApr0RICzMc1Y4Hgkb66C8C/5tS3caWm1KSHajydvjALw5egWAgiXtlBpFWnQOl9WIRAWg7IIEqc42uzslJLtR6apsmT0uvqdKNlXO2WYnSaXjxVsAXP1V73efkOxGw5elNFt3+4DQB7fcdMfa1YasGUpvAvBd+Xnd5gAJye7kT0p7dDQ3B8CCI6P/h45QO5CZb61drMuRuxoy/7LybGDUPa02JSR70enbbwFwat8PABRNaYizZueBkCJ5d2YUgOcSkvGlj6QRjDV8oTL35xAA2fHgGgvik6tOeM3hn4r464mSHLp+c+/l/92zWyUkY2nbt232SUOcN6V2VfVpu14c/Btoo6v1AlybLY9n252lxxZdXzkkI8pFR3KhuvSgRhwAjmdGXquORQ9he/VFpYRkL9ob1KN3anINbdCWUeW+9HJrzZItlG9UngbA79tGUpMSkt3IyEh3f6x4HQivkH08OwGA/9lQa+3EGZkejGXksKj/iYpuc4BdQtLQfT1baf4rObQZ/kAOfMxLk/+5du1tudJ98NTvAKxMrGm1ZVeQ1O6TZl4Oa/o/EV80L12OLjDCozuVB0vnfwJgtiZXvIv0dh27wyatu+1Q6Z8MBBeMCndl1tMxO22rYgxbPl4d+xX+Ci7xauo+lHYFyX8BNtJ+G9AjTHoAAAAASUVORK5CYII=\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_18\">\n",
       "    <path d=\"M 214.984746 92.501263 \n",
       "L 214.984746 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_19\">\n",
       "    <path d=\"M 271.730508 92.501263 \n",
       "L 271.730508 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_20\">\n",
       "    <path d=\"M 214.984746 92.501263 \n",
       "L 271.730508 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_21\">\n",
       "    <path d=\"M 214.984746 35.7555 \n",
       "L 271.730508 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!-- dress -->\n",
       "    <g transform=\"translate(227.140752 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-64\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"104.558594\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"166.082031\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"218.181641\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "    </g>\n",
       "    <!-- dress -->\n",
       "    <g transform=\"translate(227.140752 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-64\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"104.558594\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"166.082031\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"218.181641\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_5\">\n",
       "   <g id=\"patch_22\">\n",
       "    <path d=\"M 283.079661 92.501263 \n",
       "L 339.825424 92.501263 \n",
       "L 339.825424 35.7555 \n",
       "L 283.079661 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p6c05ed5a9d)\">\n",
       "    <image height=\"57\" id=\"image46da1232ee\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"283.079661\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_23\">\n",
       "    <path d=\"M 283.079661 92.501263 \n",
       "L 283.079661 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_24\">\n",
       "    <path d=\"M 339.825424 92.501263 \n",
       "L 339.825424 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_25\">\n",
       "    <path d=\"M 283.079661 92.501263 \n",
       "L 339.825424 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_26\">\n",
       "    <path d=\"M 283.079661 35.7555 \n",
       "L 339.825424 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- coat -->\n",
       "    <g transform=\"translate(298.453167 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-63\"/>\n",
       "     <use x=\"54.980469\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"116.162109\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"177.441406\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "    <!-- coat -->\n",
       "    <g transform=\"translate(298.453167 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-63\"/>\n",
       "     <use x=\"54.980469\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"116.162109\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"177.441406\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_6\">\n",
       "   <g id=\"patch_27\">\n",
       "    <path d=\"M 351.174576 92.501263 \n",
       "L 407.920339 92.501263 \n",
       "L 407.920339 35.7555 \n",
       "L 351.174576 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p21e432388c)\">\n",
       "    <image height=\"57\" id=\"image02127c6c41\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"351.174576\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAABHNCSVQICAgIfAhkiAAABMZJREFUaIHtmstvG1UUh7952GOP7bxDnEebRAUCFKmqWEG7AAkWqBILhAT8Aez5W7pnxZ4FG3aUBSsKBVQIUhTaNGloUELeju14HizOmYmiqUTGvgukzG8zmet7xjfz+cw595yx3rU+ijEo6+Z1ANbvDAPgnMr43N0HAESdTjo3fvMGAKufVmTAlsPiVwEA7rc/GVmTbeQq/3NZpkkOfz8OQLNyeG784d4MAOX3nqRjzj0ZuzP1EIC1zgQAfxw2Aei9/czImi4FSdf0Be+vLALw4vzfAHQD+Yq/dkYAuMYZyY19GVsbFoKbbTlfXp8G4CUKkheWcZKlag+AmiuP1UZJnqZPw9HM3CBwAPCd83PjtmN0TQXJfmQ7EQBlR2JdEMl9tN0oM7fhC7le5OhcJegafeAXJPtSw+8CcBKUAbAtoRK2Spm5fkn8txvJMjylb5Wy1AdRQXIQJb5YUTo8B04UWwDs93zgjGjcM3vvC5L9qNURX+xqDByp6q4jtDJzhzz5bO14TGxPxdatBkbXVJDsR+0d8a+xB0Jy7/0D+SALknYgT9zHy5KrOm255+F01+iaCpJ9SWOcvy3o9jYaOp7NYkp2CEB9Tahb+gQ+qmVj6iAqSOaR5Xly1Bw1qMilnY4QDcphxiaJoUFNzh11Rav3HAceQAXJPLIcjYujLQCCind+gp31ySCWe6yJDqVjOUZekbvmljmSrlyqFwrRZPsYVuQPy8v6ZJK7WvpRcrQ7Re6aW+ZITkj+GSudUlt80FEq3lw2i6mXzo+F6saWWZe8HCQvxT9p7Ocae5KKddqyXfKr8rN1dKc1NXSUsZn3dwH4XaogaSiJPP2pj0jTKNw/GGhtBck8Om1KIh7qgyaoyritKVqtJAXkcOFqalN3VoGz9l6gHbzY0cTBMsOgIJlHoaeF4SQJUJ90T+S87kq4ePbKldTGsVYAiNXU1qqHlZRKXDPLK0jmUehpilYK9VzGNTcg0vrH8czZV9po4Vn3yG77/DWtupRS2B5sbQXJPOoOa2JekcDYHZF4mdzGjSNpsO681UttjhV3Ehd7rtCO6+KcvabYWI/PGrf9qCCZR60ZoTA/uQfAoy3xp8Qnh7WQ/Nntr1ObH4+k9R4vyUa7pq28pSHJcHZmF2R8wLUVJPMo6Z/envgTgN1rkvLYSjJptN5deSe1ufnCJgBvzG0AcKpzmhXJc5+OCIOC5AVkLncdk1Rn+1Ry2CvqVwenkpAOlyUIJi8/ANzfkuwnaQol5ZCkrd6alfPxAddWkMyjsCYktzpC0tUWQKjN2Dl/H4Bfd2cztkkLL9HGoewju5PZ4lc/KkjmkdWV+7V5LBSmfKkULwz9A4Bvy6ZxbXUqtfHGxU+v1iS2rrfkhaakGGaqXVCQzCV9lWV7T3xytCKUHB1/uboFwK0bK6nJgi+Ukxcilp9IM9belrzX2ysqAxeWMZLlfc1OFqUUsFCXSlxVfbEVyY7jg4mfU5tOJBvJe/uvAhC3ZTkTr+0AsPvLpJG1FSTzKKmZfvH6lwB8d7IEwIeN3wB41BsCYNJppTbXy5Lf3qp+A8DHEz8A0LDFnz+PPjGytktB0viL9v8ld7qZ/h0dym4jaildS+NjWZ6ucdfMqy6XguS/sfti8HLpgwIAAAAASUVORK5CYII=\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_28\">\n",
       "    <path d=\"M 351.174576 92.501263 \n",
       "L 351.174576 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_29\">\n",
       "    <path d=\"M 407.920339 92.501263 \n",
       "L 407.920339 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_30\">\n",
       "    <path d=\"M 351.174576 92.501263 \n",
       "L 407.920339 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_31\">\n",
       "    <path d=\"M 351.174576 35.7555 \n",
       "L 407.920339 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- trouser -->\n",
       "    <defs>\n",
       "     <path d=\"M 8.5 21.578125 \n",
       "L 8.5 54.6875 \n",
       "L 17.484375 54.6875 \n",
       "L 17.484375 21.921875 \n",
       "Q 17.484375 14.15625 20.5 10.265625 \n",
       "Q 23.53125 6.390625 29.59375 6.390625 \n",
       "Q 36.859375 6.390625 41.078125 11.03125 \n",
       "Q 45.3125 15.671875 45.3125 23.6875 \n",
       "L 45.3125 54.6875 \n",
       "L 54.296875 54.6875 \n",
       "L 54.296875 0 \n",
       "L 45.3125 0 \n",
       "L 45.3125 8.40625 \n",
       "Q 42.046875 3.421875 37.71875 1 \n",
       "Q 33.40625 -1.421875 27.6875 -1.421875 \n",
       "Q 18.265625 -1.421875 13.375 4.4375 \n",
       "Q 8.5 10.296875 8.5 21.578125 \n",
       "z\n",
       "M 31.109375 56 \n",
       "z\n",
       "\" id=\"DejaVuSans-75\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(357.97277 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "     <use x=\"39.208984\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"80.291016\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"141.472656\" xlink:href=\"#DejaVuSans-75\"/>\n",
       "     <use x=\"204.851562\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"256.951172\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"318.474609\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "    </g>\n",
       "    <!-- trouser -->\n",
       "    <g transform=\"translate(357.97277 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "     <use x=\"39.208984\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"80.291016\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"141.472656\" xlink:href=\"#DejaVuSans-75\"/>\n",
       "     <use x=\"204.851562\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"256.951172\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"318.474609\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_7\">\n",
       "   <g id=\"patch_32\">\n",
       "    <path d=\"M 419.269492 92.501263 \n",
       "L 476.015254 92.501263 \n",
       "L 476.015254 35.7555 \n",
       "L 419.269492 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p52466d6fe9)\">\n",
       "    <image height=\"57\" id=\"image42fd25d467\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"419.269492\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_33\">\n",
       "    <path d=\"M 419.269492 92.501263 \n",
       "L 419.269492 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_34\">\n",
       "    <path d=\"M 476.015254 92.501263 \n",
       "L 476.015254 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_35\">\n",
       "    <path d=\"M 419.269492 92.501263 \n",
       "L 476.015254 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_36\">\n",
       "    <path d=\"M 419.269492 35.7555 \n",
       "L 476.015254 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- pullover -->\n",
       "    <defs>\n",
       "     <path d=\"M 18.109375 8.203125 \n",
       "L 18.109375 -20.796875 \n",
       "L 9.078125 -20.796875 \n",
       "L 9.078125 54.6875 \n",
       "L 18.109375 54.6875 \n",
       "L 18.109375 46.390625 \n",
       "Q 20.953125 51.265625 25.265625 53.625 \n",
       "Q 29.59375 56 35.59375 56 \n",
       "Q 45.5625 56 51.78125 48.09375 \n",
       "Q 58.015625 40.1875 58.015625 27.296875 \n",
       "Q 58.015625 14.40625 51.78125 6.484375 \n",
       "Q 45.5625 -1.421875 35.59375 -1.421875 \n",
       "Q 29.59375 -1.421875 25.265625 0.953125 \n",
       "Q 20.953125 3.328125 18.109375 8.203125 \n",
       "z\n",
       "M 48.6875 27.296875 \n",
       "Q 48.6875 37.203125 44.609375 42.84375 \n",
       "Q 40.53125 48.484375 33.40625 48.484375 \n",
       "Q 26.265625 48.484375 22.1875 42.84375 \n",
       "Q 18.109375 37.203125 18.109375 27.296875 \n",
       "Q 18.109375 17.390625 22.1875 11.75 \n",
       "Q 26.265625 6.109375 33.40625 6.109375 \n",
       "Q 40.53125 6.109375 44.609375 11.75 \n",
       "Q 48.6875 17.390625 48.6875 27.296875 \n",
       "z\n",
       "\" id=\"DejaVuSans-70\"/>\n",
       "     <path d=\"M 2.984375 54.6875 \n",
       "L 12.5 54.6875 \n",
       "L 29.59375 8.796875 \n",
       "L 46.6875 54.6875 \n",
       "L 56.203125 54.6875 \n",
       "L 35.6875 0 \n",
       "L 23.484375 0 \n",
       "z\n",
       "\" id=\"DejaVuSans-76\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(423.316123 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-70\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-75\"/>\n",
       "     <use x=\"126.855469\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"243.603516\" xlink:href=\"#DejaVuSans-76\"/>\n",
       "     <use x=\"302.783203\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"364.306641\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "    </g>\n",
       "    <!-- pullover -->\n",
       "    <g transform=\"translate(423.316123 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-70\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-75\"/>\n",
       "     <use x=\"126.855469\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use x=\"154.638672\" xlink:href=\"#DejaVuSans-6c\"/>\n",
       "     <use x=\"182.421875\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"243.603516\" xlink:href=\"#DejaVuSans-76\"/>\n",
       "     <use x=\"302.783203\" xlink:href=\"#DejaVuSans-65\"/>\n",
       "     <use x=\"364.306641\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_8\">\n",
       "   <g id=\"patch_37\">\n",
       "    <path d=\"M 487.364407 92.501263 \n",
       "L 544.110169 92.501263 \n",
       "L 544.110169 35.7555 \n",
       "L 487.364407 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p77cb11933f)\">\n",
       "    <image height=\"57\" id=\"imagef441d6fbeb\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"487.364407\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_38\">\n",
       "    <path d=\"M 487.364407 92.501263 \n",
       "L 487.364407 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_39\">\n",
       "    <path d=\"M 544.110169 92.501263 \n",
       "L 544.110169 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_40\">\n",
       "    <path d=\"M 487.364407 92.501263 \n",
       "L 544.110169 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_41\">\n",
       "    <path d=\"M 487.364407 35.7555 \n",
       "L 544.110169 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- coat -->\n",
       "    <g transform=\"translate(502.737913 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-63\"/>\n",
       "     <use x=\"54.980469\" xlink:href=\"#DejaVuSans-6f\"/>\n",
       "     <use x=\"116.162109\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"177.441406\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "    <!-- shirt -->\n",
       "    <defs>\n",
       "     <path d=\"M 54.890625 33.015625 \n",
       "L 54.890625 0 \n",
       "L 45.90625 0 \n",
       "L 45.90625 32.71875 \n",
       "Q 45.90625 40.484375 42.875 44.328125 \n",
       "Q 39.84375 48.1875 33.796875 48.1875 \n",
       "Q 26.515625 48.1875 22.3125 43.546875 \n",
       "Q 18.109375 38.921875 18.109375 30.90625 \n",
       "L 18.109375 0 \n",
       "L 9.078125 0 \n",
       "L 9.078125 75.984375 \n",
       "L 18.109375 75.984375 \n",
       "L 18.109375 46.1875 \n",
       "Q 21.34375 51.125 25.703125 53.5625 \n",
       "Q 30.078125 56 35.796875 56 \n",
       "Q 45.21875 56 50.046875 50.171875 \n",
       "Q 54.890625 44.34375 54.890625 33.015625 \n",
       "z\n",
       "\" id=\"DejaVuSans-68\"/>\n",
       "     <path d=\"M 9.421875 54.6875 \n",
       "L 18.40625 54.6875 \n",
       "L 18.40625 0 \n",
       "L 9.421875 0 \n",
       "z\n",
       "M 9.421875 75.984375 \n",
       "L 18.40625 75.984375 \n",
       "L 18.40625 64.59375 \n",
       "L 9.421875 64.59375 \n",
       "z\n",
       "\" id=\"DejaVuSans-69\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(502.323538 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"52.099609\" xlink:href=\"#DejaVuSans-68\"/>\n",
       "     <use x=\"115.478516\" xlink:href=\"#DejaVuSans-69\"/>\n",
       "     <use x=\"143.261719\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"184.375\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_9\">\n",
       "   <g id=\"patch_42\">\n",
       "    <path d=\"M 555.459322 92.501263 \n",
       "L 612.205085 92.501263 \n",
       "L 612.205085 35.7555 \n",
       "L 555.459322 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p4d8d162748)\">\n",
       "    <image height=\"57\" id=\"image415c77897a\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"555.459322\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAABHNCSVQICAgIfAhkiAAABdpJREFUaIHtmbtvHFUUxn8zO/tebx62g5MQTJwEQ4qACEgJgoQIGh5SEAIhJCQqSjokCvgHkBAViIaCiiIFEo+kRSkQJBJCgRAgPOI8iB1HNrbX9q5350FxztnNTHYdGkDs7Gnuzsydc+ee757vfPeu87jzXESfm/tff8C/YYNJ9osNJtkvNphkv9hgkv1iXvDo/QBMHywAMP7pHADBDz/HOi6+dACA2g6JS2tIhFJ+wQFgZTwA4Pbds+JvbgMA0bT4nXx7CoBweaXt062U5Uekostx9MEtYm/9rPV9afM5GaNSkvbsT+JufW/9YY5pV2/iTgAuP7MNgFCCwo4T8wAsvNUC4NDYbwBMN6oAFDNyv+o1AFjyBblfl0YBmBiSlbGvcgWArOO3B29FHgANbVuhtlFm3Y9e037J61PXZQ5v7j4OwDsvvwikDcmkeTvHATj+5ScA3HtaojI2VANgcsM1AA5XJXffvXgEgJkFQXj/9ssA3FGUlTC1OgxAI+ig0AiyALRCQc4PJeauI58URpJzkbbtj9bnnht2ndRQVlZV/dUR8de1V59ZO6yOJz8jZSr/wkUAnnrwSQCar2wC4L6jPwKw0CoC8NrJF+T9vLDrY5OCrOtIlM8tbY1dG0oAOTeI3St6ipAj95uaa4ZoEMYxySiSyfuGcJiX99OFpCGYNP+PqwCEnuRoyW0CcOzsAwBM7JTcPDhyAYCzi8LOlnsb83UAllv5mwdXdAvK0GEi93Kur/cFi1ARctGcRfqXvGZsjKdHzgDw/q492j8F5rVVQ7T+UU9zVKJ6qb4ZgP17pgDYUlgG4LvF7XHHGnWLbte8snKoJOkrYoZw0gzBNnJ+PjZWLiO5XNbVlqsZ8ikwL4lgkmWDI6JtX3/kBACfz+4DYKUlkmh6pRp7v9FSRkwwXjLfAPJZGaOUjedk0KVv3ETzLtVFXVndbNTlm06WJ2UOyjgpQbKt6GW+hmBmWHJvdq9E670PjwJw+PlvAPh2TnJwe2URgFVfoujn1E8CDcu3G3Myn5Gx8p60zUCSdE2ZOal87Np8lPOSexvyonDmPdl9bMquynsZfe/vROL/bu2cdDyJYhQKQ80/cRcAt30gyE29IblpysWi29SoLzeF6Sw/LOrGlNa6mQ4HZBJ1z9jR2qTZmOZrAVFdtkpCdW21PPRShGQqJun1etDYpASytgbA2qgsoZpuigtKFibfKjnp11LysCXkOPESlb2h0NsWq+7LlssEu71rVs42Y9cm54y4zHKevD9ZmAYgyKdouXaQdNcvwI4ff25SKtCou0pgRv9GEllFx/pF68hHQyhZOmzrpY/bm21bJeZ7uSHkN9OSQzRdKGlDMoxHuDIt0cvslVLitCSMdnBlRxXDBTlitOhmlf4NhYLmTTPscjiVOO4w1G2VNNv5nYldG3L2DZbLhuxiIKLA0j9dSEZBvABXv/gFgNoh2XgWZ1WWtUWARLXWFLa1fGrnoEbZmNOkm22EoXO8kUkgmkQM4sck1ZzItrmGCPVyVph9W1WefzU/If19FSa3ikI/WCcnI13AKtiDOTlKHDq/AMD0w3KQNVWTo0Xb5ljumUhOsquZ31Lp5d3M4m5CCnZaQbDircXur+rqWPP18/UgfFW3f/YN+aVUbZrNetQv++OntOseoMOe1jZ9yZ+FSMSyieuiJyxs+eI6N/v3EgLdLKl4jNE9zfcryxsB2FKSg25j8KquJtvQFz47rf5TYD21K67WNd16bX32PAC/HxNEbVNcKQpSf9akNu0clT94RrR+XqsPxd3egJrVteQG25jacu6Ssu1YWZDbrL7PzYwB0FwV5JyMrIzSGVlV27ioY6bAeiOpCDpZiVLUkp3A8EdSm2YOSHwKXwuCxUBQyXwvzDc3I/3d1cs9h+ilYi3yxURbT/Qb53pP39389bX1RlLNEDQrfXwKgNzdD8Wuzbr/2fAP2y0OyFOBZM8/YfvJUoHkYJL9YoNJ9osNJtkvNphkv9hfUmM/yZbVYiEAAAAASUVORK5CYII=\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_43\">\n",
       "    <path d=\"M 555.459322 92.501263 \n",
       "L 555.459322 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_44\">\n",
       "    <path d=\"M 612.205085 92.501263 \n",
       "L 612.205085 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_45\">\n",
       "    <path d=\"M 555.459322 92.501263 \n",
       "L 612.205085 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_46\">\n",
       "    <path d=\"M 555.459322 35.7555 \n",
       "L 612.205085 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- bag -->\n",
       "    <defs>\n",
       "     <path d=\"M 48.6875 27.296875 \n",
       "Q 48.6875 37.203125 44.609375 42.84375 \n",
       "Q 40.53125 48.484375 33.40625 48.484375 \n",
       "Q 26.265625 48.484375 22.1875 42.84375 \n",
       "Q 18.109375 37.203125 18.109375 27.296875 \n",
       "Q 18.109375 17.390625 22.1875 11.75 \n",
       "Q 26.265625 6.109375 33.40625 6.109375 \n",
       "Q 40.53125 6.109375 44.609375 11.75 \n",
       "Q 48.6875 17.390625 48.6875 27.296875 \n",
       "z\n",
       "M 18.109375 46.390625 \n",
       "Q 20.953125 51.265625 25.265625 53.625 \n",
       "Q 29.59375 56 35.59375 56 \n",
       "Q 45.5625 56 51.78125 48.09375 \n",
       "Q 58.015625 40.1875 58.015625 27.296875 \n",
       "Q 58.015625 14.40625 51.78125 6.484375 \n",
       "Q 45.5625 -1.421875 35.59375 -1.421875 \n",
       "Q 29.59375 -1.421875 25.265625 0.953125 \n",
       "Q 20.953125 3.328125 18.109375 8.203125 \n",
       "L 18.109375 0 \n",
       "L 9.078125 0 \n",
       "L 9.078125 75.984375 \n",
       "L 18.109375 75.984375 \n",
       "z\n",
       "\" id=\"DejaVuSans-62\"/>\n",
       "     <path d=\"M 45.40625 27.984375 \n",
       "Q 45.40625 37.75 41.375 43.109375 \n",
       "Q 37.359375 48.484375 30.078125 48.484375 \n",
       "Q 22.859375 48.484375 18.828125 43.109375 \n",
       "Q 14.796875 37.75 14.796875 27.984375 \n",
       "Q 14.796875 18.265625 18.828125 12.890625 \n",
       "Q 22.859375 7.515625 30.078125 7.515625 \n",
       "Q 37.359375 7.515625 41.375 12.890625 \n",
       "Q 45.40625 18.265625 45.40625 27.984375 \n",
       "z\n",
       "M 54.390625 6.78125 \n",
       "Q 54.390625 -7.171875 48.1875 -13.984375 \n",
       "Q 42 -20.796875 29.203125 -20.796875 \n",
       "Q 24.46875 -20.796875 20.265625 -20.09375 \n",
       "Q 16.0625 -19.390625 12.109375 -17.921875 \n",
       "L 12.109375 -9.1875 \n",
       "Q 16.0625 -11.328125 19.921875 -12.34375 \n",
       "Q 23.78125 -13.375 27.78125 -13.375 \n",
       "Q 36.625 -13.375 41.015625 -8.765625 \n",
       "Q 45.40625 -4.15625 45.40625 5.171875 \n",
       "L 45.40625 9.625 \n",
       "Q 42.625 4.78125 38.28125 2.390625 \n",
       "Q 33.9375 0 27.875 0 \n",
       "Q 17.828125 0 11.671875 7.65625 \n",
       "Q 5.515625 15.328125 5.515625 27.984375 \n",
       "Q 5.515625 40.671875 11.671875 48.328125 \n",
       "Q 17.828125 56 27.875 56 \n",
       "Q 33.9375 56 38.28125 53.609375 \n",
       "Q 42.625 51.21875 45.40625 46.390625 \n",
       "L 45.40625 54.6875 \n",
       "L 54.390625 54.6875 \n",
       "z\n",
       "\" id=\"DejaVuSans-67\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(572.537203 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-62\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"124.755859\" xlink:href=\"#DejaVuSans-67\"/>\n",
       "    </g>\n",
       "    <!-- bag -->\n",
       "    <g transform=\"translate(572.537203 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-62\"/>\n",
       "     <use x=\"63.476562\" xlink:href=\"#DejaVuSans-61\"/>\n",
       "     <use x=\"124.755859\" xlink:href=\"#DejaVuSans-67\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_10\">\n",
       "   <g id=\"patch_47\">\n",
       "    <path d=\"M 623.554237 92.501263 \n",
       "L 680.3 92.501263 \n",
       "L 680.3 35.7555 \n",
       "L 623.554237 35.7555 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p4338df50cd)\">\n",
       "    <image height=\"57\" id=\"image71c0554ae4\" transform=\"scale(1 -1)translate(0 -57)\" width=\"57\" x=\"623.554237\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-35.501263\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_48\">\n",
       "    <path d=\"M 623.554237 92.501263 \n",
       "L 623.554237 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_49\">\n",
       "    <path d=\"M 680.3 92.501263 \n",
       "L 680.3 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_50\">\n",
       "    <path d=\"M 623.554237 92.501263 \n",
       "L 680.3 92.501263 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_51\">\n",
       "    <path d=\"M 623.554237 35.7555 \n",
       "L 680.3 35.7555 \n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- t-shirt -->\n",
       "    <defs>\n",
       "     <path d=\"M 4.890625 31.390625 \n",
       "L 31.203125 31.390625 \n",
       "L 31.203125 23.390625 \n",
       "L 4.890625 23.390625 \n",
       "z\n",
       "\" id=\"DejaVuSans-2d\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(633.996494 16.318125)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "     <use x=\"39.208984\" xlink:href=\"#DejaVuSans-2d\"/>\n",
       "     <use x=\"75.292969\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"127.392578\" xlink:href=\"#DejaVuSans-68\"/>\n",
       "     <use x=\"190.771484\" xlink:href=\"#DejaVuSans-69\"/>\n",
       "     <use x=\"218.554688\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"259.667969\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "    <!-- t-shirt -->\n",
       "    <g transform=\"translate(633.996494 29.7555)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "     <use x=\"39.208984\" xlink:href=\"#DejaVuSans-2d\"/>\n",
       "     <use x=\"75.292969\" xlink:href=\"#DejaVuSans-73\"/>\n",
       "     <use x=\"127.392578\" xlink:href=\"#DejaVuSans-68\"/>\n",
       "     <use x=\"190.771484\" xlink:href=\"#DejaVuSans-69\"/>\n",
       "     <use x=\"218.554688\" xlink:href=\"#DejaVuSans-72\"/>\n",
       "     <use x=\"259.667969\" xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p753b72d2fc\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"10.7\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pe21d708e05\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"78.794915\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p5fd99624e6\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"146.889831\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p0ca819c3ce\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"214.984746\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p6c05ed5a9d\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"283.079661\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p21e432388c\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"351.174576\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p52466d6fe9\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"419.269492\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p77cb11933f\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"487.364407\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p4d8d162748\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"555.459322\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p4338df50cd\">\n",
       "   <rect height=\"56.745763\" width=\"56.745763\" x=\"623.554237\" y=\"35.7555\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 864x864 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for X, y in test_iter:\n",
    "    break\n",
    "\n",
    "true_labels = d2l.get_fashion_mnist_labels(y.numpy())\n",
    "pred_labels = d2l.get_fashion_mnist_labels(net(X).argmax(dim=1).numpy())\n",
    "titles = [truelabel + '\\n' + predlabel for truelabel, predlabel in zip(true_labels, pred_labels)]\n",
    "\n",
    "d2l.show_fashion_mnist(X[10:20], titles[10:20])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "With softmax regression, we can train models for multi-category classification. The training loop is very similar to that in linear regression: retrieve and read data, define models and loss functions,\n",
    "then train models using optimization algorithms. As you'll soon find out, most common deep learning models have similar training procedures.\n",
    "\n",
    "## Exercises\n",
    "\n",
    "1. In this section, we directly implemented the softmax function based on the mathematical definition of the softmax operation. What problems might this cause (hint - try to calculate the size of $\\exp(50)$)?\n",
    "1. The function `cross_entropy` in this section is implemented according to the definition of the cross-entropy loss function.  What could be the problem with this implementation (hint - consider the domain of the logarithm)?\n",
    "1. What solutions you can think of to fix the two problems above?\n",
    "1. Is it always a good idea to return the most likely label. E.g. would you do this for medical diagnosis?\n",
    "1. Assume that we want to use softmax regression to predict the next word based on some features. What are some problems that might arise from a large vocabulary?"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
